// Drummyfish's Xonotic server config
// put in ~/.xonotic/data/server.cfg
// by drummyfish, released under CC0 1.0, public domain

// useful links:
//   https://xonotic.org/tools/cacs/
//   https://xonotic.fandom.com/wiki/Game_Server_Configuration

sv_public 1
hostname "Drummyfish advanced fun Ⓐ☮"

set server_message "^2Welcome to drummyfish's relaxed server :) Everything is votable (type 'vhelp' into console). Many votes require restart of the game! This server is up only when I turn it on. ^1EVERYTHING IS WORK IN PROGRESS!^2 Please excuse connection issues. Peace and happy glhf. Ⓐ☮"

sv_motd "${server_message}" // join message

alias chat_server_message "say ${server_message}; defer 300 chat_server_message" 

alias chat_support "say ^2Capitalism enslaves humans! Don't forget to support public domain, free software and free culture. Be a pacifist.^7; defer 610 chat_support" 

chat_support
chat_server_message

//port 3466 // custom port to baypass some ISPs blocking "gaming" port
maxplayers 20
log_file "server.log"
g_start_delay 15

alias g_maplist "afterslime atelier boil catharsis courtfun dance drain erbium finalrage fuse geoplanetary glowplant implosion leave_em_behind nexballarena runningman runningmanctf silentsiege solarium space-elevator stormkeep warfare xoylent"

sv_vote_call 1

sv_vote_gametype 1
sv_vote_gametype_options "ca dm ft tdm lms ctf nb dom kh duel"

alias sv_hook_gamestart_all "defer 10 say_config"

bot_prefix "[SUPERBOT] "
//bot_suffix ""

g_maplist_votable 8

sv_taunt 1

alias bots "minplayers 4; minplayers_per_team 2"

//sv_maxidle 80 // idle time in seconds after which players will get kicked

sv_weaponstats_file "http://www.xonotic.org/weaponbalance/"

//g_antilag 2 // can try (0, 1 ,2)

g_balance_teams 1

g_balance_teams_prevent_imbalance 0

g_spawnshieldtime 1

v_vote_commands "restart fraglimit gotomap nextmap endmatch reducematchtime extendmatchtime allready kick cointoss movetoauto shuffleteams bots nobots"

addvote slowmo
addvote g_grappling_hook
addvote g_jetpack
addvote g_midair
addvote g_vampire
addvote g_walljump
addvote g_touchexplode
addvote sv_gravity
addvote g_bloodloss
addvote g_powerups
addvote set_defaults
addvote vs_superbots
addvote duel_superbot
addvote leadlimit
addvote g_weaponarena
addvote no_vort
addvote no_electro
addvote no_electro_vort
addvote weaponarena_random
addvote bot_number
addvote round_time
addvote health
addvote armor
addvote g_use_ammunition
addvote lol
addvote self_damage
addvote no_self_damage
addvote g_sandbox
addvote sv_cheats

g_sandbox_object_scale_max 1000

alias self_damage "teamplay_mode 3; teamplay 3"
alias no_self_damage "teamplay_mode 1; teamplay 1"

alias no_vort g_weaponarena "\"blaster shotgun crylink electro machinegun devastator mortar hagar\""
alias no_electro g_weaponarena "\"blaster shotgun crylink vortex machinegun devastator mortar hagar\""
alias no_electro_vort g_weaponarena "\"blaster shotgun crylink machinegun devastator mortar hagar\""

alias health "g_balance_health_limit $1; g_balance_health_start $1; g_balance_health_rot 0; g_balance_health_rotlinear 0; g_pickup_healthsmall_max $1; g_pickup_healthmedium_max $1; g_pickup_healthbig_max $1; g_pickup_healthmega_max $1"
alias armor "g_balance_armor_limit $1; g_balance_armor_start $1; g_balance_armor_rot 0; g_balance_armor_rotlinear 0; g_pickup_armorsmall_max $1; g_pickup_armormedium_max $1; g_pickup_armorbig_max $1; g_pickup_armormega_max $1"

alias weaponarena_random "g_weaponarena 0; g_weaponarena_random 1"

alias set_rand_h health ${tmp_h}
alias set_rand_a armor ${tmp_a}

alias lol "rpn /tmp_gt /dm /tdm 2 rand when /ca /ctf 2 rand when 2 rand when =; rpn /slowmo 12 rand 10 / 0.4 + =; rpn /sv_gravity 1400 rand 100 + =; gametype ${tmp_gt}; rpn /g_touchexplode 2 rand =; rpn /g_grappling_hook 2 rand =; rpn /g_bloodloss 2 rand =; rpn /g_walljump 2 rand =; rpn /g_jetpack 2 rand =; rpn /g_powerups 2 rand =; rpn /g_weaponarena /0 /all_available 4 rand when /devastator /blaster /vortex 2 rand when 2 rand when 4 rand when =; rpn /slowmo 10 rand 10 / 0.5 + =; rpn /bot_number 10 rand =; rpn /bot_vs_human 2 rand =; rpn /tmp_h 950 rand 50 + =; rpn /tmp_a 950 rand 50 + =; set_rand_h; set_rand_a; rpn /g_use_ammunition 2 rand =; restart"

alias round_time "g_ca_round_timelimit ${1}; g_ctf_pass_timelimit ${1}; g_freezetag_round_timelimit ${1}; g_domination_round_timelimit ${1}"

alias vs_superbots "restore_defaults; gametype tdm; against_bots; restart"
alias duel_superbot "restore_defaults; against_bots; bot_number 1; g_maxplayers 1; restart"

alias set_defaults "restore_defaults; restart"

//--------------------------------- variable stuff:

alias say_config "say ^2-- CURRENT CONFIG --^7 (to restore: vcall set_default); say fraglimit: ${fraglimit}; say timelimit: ${timelimit}; say leadlimit: ${leadlimit}; say hook: ${g_grappling_hook}; say jetpack: ${g_jetpack}; say midair: ${g_midair}; say vampire ${g_vampire}; say slowmo: ${slowmo}; say gravity: ${sv_gravity}; say powerups: ${g_powerups}; say weaponarena: ${g_weaponarena}; say weaponarena random: ${g_weaponarena_random}; say walljump: ${g_walljump}; say touch explode: ${g_touchexplode}; say bloodloss: ${g_bloodloss}; say bots: ${bot_number}; say round time: ${g_ca_round_timelimit}; say health: ${g_balance_health_start}; say armor: ${g_balance_armor_start}; ammo: ${g_use_ammunition}"

alias restore_defaults "gametype dm; slowmo 1; timelimit_override 60; fraglimit_override 30; capturelimit_override 6; leadlimit 1000; g_lms_lives_override 10 skill 10; g_grappling_hook 0; g_jetpack 0; g_midair 0; g_vampire 0; sv_gravity 800; g_powerups 1; bot_vs_human 0; g_maxplayers 20; g_weaponarena 0; g_walljump 0; g_touchexplode 0; g_bloodloss 0; g_weaponarena_random 0; bot_number 0; g_balance_health_limit 200; g_balance_health_start 200; g_balance_health_rot 0.02; g_balance_armor_limit 200; g_balance_armor_start 200; g_balance_armor_rot 0.02; g_balance_health_rotlinear 1; g_balance_armor_rotlinear 0; g_use_ammunition 1; g_pickup_healthsmall_max 200; g_pickup_healthmedium_max 200; g_pickup_healthbig_max 200; g_pickup_healthmega_max 200; g_pickup_armorsmall_max 200; g_pickup_armormedium_max 200; g_pickup_armorbig_max 200; g_pickup_armormega_max 200; teamplay_mode 4; teamplay 0"

alias against_bots "gametype tdm; bot_vs_human 1; g_powerups 0;"

restore_defaults // set defaults on server start
